//
//  Extension+NSDate.swift
//  SYWeibo
//
//  Created by Eric on 16/7/26.
//  Copyright © 2016年 Eric. All rights reserved.
//

import UIKit
//实例化 NSDateFormatter
private let df = NSDateFormatter()
//日历类
private let calendar = NSCalendar.currentCalendar()
extension  NSDate{

    //定义类方法
    //获取微博日期
    class func sinaDate(createAt: String) -> NSDate?{
    //设置locate 指定的地区    如果不指定 在真机中时间会有问题
    df.locale = NSLocale(localeIdentifier: "en_US")
        //指定时间的格式
        df.dateFormat = "EEEE MMM dd HH:mm:ss z yyyy"
        return df.dateFromString(createAt)
    }

    //获取微博时间的字符串
    var sinaDescriptionStr: String{
    //定义一个属性 来判断是今年还是.....
        let isThisYear = sinaIsThisYear(self)
        
        //            - 如果是今天
        //                - 小于60秒 显示 刚刚
        //                    - 大于等于60秒且小于3600秒  显示 xx分钟前
        //                        - 大于等于3600秒  显示  xx小时前
        //
        //            - 如果是昨天
        //                            - 例如 2016-07-25 10:10:10  显示格式 昨天 10:10
        //
        //            - 如果是其他
        //            - 例如 2016-05-01 10:10:10  显示格式 05月01日 10:10
        // 是今天

        
        
        //今年
        if isThisYear{
            if calendar.isDateInToday(self){
            //获取当前时间和传入的微博时间差值
                let s = timeIntervalSinceDate(self)
                if s < 60 {
                return "刚刚"
                }else if s >= 60 && s < 3600{
                    return"\(s/60)分钟前"
                }else{
                return "\(s/3600)小时前"
                }
            }else if calendar.isDateInYesterday(self){
            //昨天
                df.dateFormat = "昨天 HH:mm"
            }else{
            //其他
                df.dateFormat = "MM月dd日 HH:mm"
            }
        }else{
            // 不是今年
            //            - 例如 2015-01-01 10:10:10
            //            - 显示 格式: 2015年01月01日 10:10
            // 指定时间格式
        df.dateFormat = "yyyy年MM月dd日 HH:mm"
        }

        return df.stringFromDate(self)
    }
    // 判断微博时间是否是今年
    func sinaIsThisYear(sinaDate: NSDate) ->Bool{
        //设置locate 指定地区 如果不指定   在真机中就会报错
        df.locale = NSLocale(localeIdentifier: "en_US")
        //指定的时间格式
        df.dateFormat = "yyyy"
        //获取当前的日期
        let currentDate = NSDate()
        //微博日期字符串
        let sinaStr = df.stringFromDate(sinaDate)
        //当前日期字符串
        let currentStr = df.stringFromDate(currentDate)
        return sinaStr == currentStr
        
    }
   
}



